jar 文件 与 aar 文件区别

在 android studio 中利用被依赖的库生成操作时将会同时生成 .jar 与 .aar 文件,两者都可以提供给别的项目作为依赖,主要区别是:

  • jar:只包含了 class 文件与清单文件,不包含资源文件,如图片等所有 res 中的文件。
  • aar:包含所有资源,class 以及 res 资源文件也都包含。

导出 arr 方法:

项目中有依赖的库,先执行 ./gradlew assembleRelease ,(记得是 Release 才有效)然后在库的 build/outputs/aar 文件夹里生成 aar 文件。

引用本地 aar 方法:

1、把 aar 文件 copy 到一个文件的目录内,如 libs 目录
2、在 app 的 build.gradle 文件中添加以下内容

1
2
3
4
5
repositories {
flatDir {
dirs 'libs'
}
}

3、添加依赖

1
2
3
dependencies {
compile(name:'aar 文件名', ext:'aar')
}

自此 aar 文件添加完成。

利用 android studio 把 jar 包

1、在被依赖库下面的 build.gradle 中添加以下内容

1
2
3
4
5
6
7
8
9
10
11
12
task clearJar(type: Delete) {
delete 'build/libs/mySdk.jar'////这行表示如果你已经打过一次包了,再进行打包则把原来的包删掉
}
task makeJar(type: Copy) {
from('build/intermediates/bundles/release/') //这行表示要打包的文件的路径,根据下面的内容,其实是该路径下的classes.jar
into('build/libs/') //这行表示打包完毕后包的生成路径,也就是生成的包存在哪
include('classes.jar') //看到这行,如果你对分包有了解的话,你就可以看出来这行它只是将一些类打包了
rename ('classes.jar', 'mySdk.jar')
}
makeJar.dependsOn(clearJar, build)

2、在 Terminal 窗口中执行 ./gradlew makeJar (第一次执行会下载一些文件,耐心等待即可)

成功后,就可以在 build/libs 查看到生成 mySdk.jar 包。

引用 jar 包

1、将 jar 包 copy 到项目的libs 目录下
2、在 jar 包上右键 Add as Libary 既可自动添加为依赖

自此 导入 jar 包成功

总结

jar 文件 与 aar 文件 都能很方便的作为依赖到项目中,对 android 开发来说,能有效的提高代码的复用。